package cn.gson.springboot.model.service.cusservice;

import cn.gson.springboot.model.dao.cusdao.CulinkmanDao;
import cn.gson.springboot.model.mapper.cusmapper.CulinkmanMapper;
import cn.gson.springboot.model.pjos.Culinkman;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
public class CulinkmanService {
    @Autowired
    CulinkmanMapper culinkmanMapper;//联系人
    @Autowired
    CulinkmanDao culinkmanDao;

//    分页查询联系人
    public List<Culinkman> manSelect(String cupName){
        Culinkman culinkman=new Culinkman();
        if(cupName != null){
//            判断是根据名字还是电话查询
            if(cupName.matches("\\d+")){
                culinkman.setCupPhone(cupName);
            }else {
                culinkman.setCupName(cupName);
            }
        }
        return culinkmanMapper.manSelect(1,culinkman.getCupPhone(),cupName);
    }

//    新增联系人
    public void addLinkman(Culinkman culinkman){
        if(culinkman.getCupMaster()==1){
//            将其他首要联系人修改
            Integer customId=culinkman.getCustomerByCustomId().getCustomId();
            culinkmanMapper.updateMaster(0,customId);
        }
        culinkman.setCupState(1);
        culinkmanDao.save(culinkman);
    }

    //    逻辑删除联系人
    public String delCulinkman(Integer cupId){
        String error=null;
//        判断该联系人是否是他对应客户的唯一一个联系人
        Culinkman culinkman = culinkmanDao.findById(cupId).get();
        System.err.println("联系人对应客户："+culinkman.getCustomerByCustomId());
        System.out.println("联系人对应的客户的其他联系人："+culinkman.getCustomerByCustomId().getCulinkmenByCustomId().size());
        if(culinkman.getCustomerByCustomId().getCulinkmenByCustomId().size()!=1){
            //        如果还有其他联系人就可以删除
            culinkmanMapper.delCulinkman(0,cupId);
        }else{
//            如果是该客户的唯一一个联系人就不能删除该联系人
            error="该联系人是对应客户的唯一联系人，不予删除！";
        }
        return error;
    }

    //    查询联系电话是否重复
    public List<Culinkman> selectCupPhone(String cupPhone){
        return culinkmanMapper.selectCupPhone(cupPhone);
    }
}
